<script>
    let f1 = function(){}
    f1();
    // 1.基本使用
    let f2 = ()=>{
        console.log('这是箭头函数');
    }
    f2();

    // 2.箭头函数的参数
    // 2.1 多个参数逗号隔开
    let f3 = (a, b)=>{
        console.log(a+b);
    }
    f3(10, 20);

    // 2.2 一个参数时，可以省略小括号
    let f4 = a=>{
        console.log(a, '简写');
    }
    f4(100);

    let arr = [10, 20, 30];
    // arr.forEach(function(item){})
    arr.forEach( item=>{ 
        console.log(item, 'item');
    });

    // 2.3 箭头函数中不能使用arguments，使用rest参数代替
    let f5 = (...args)=>{
        // console.log(arguments); // arguments is not defined
        console.log(args, '接收所有参数'); // [10, 20, 30]
    }
    f5(10, 20, 30);

    // 3.箭头函数的返回值
    // 3.1 当代码只有一行，且是进行返回的，可以把return和花括号同时省略
    // let f6 = (a, b)=>{ return a + b; }
    let f6 = (a, b)=> a + b; 
    // let f6 = (a, b)=>{
    //     a + b; // 此时只是执行代码a+b,没有返回内容
    // }
    console.log( f6(30, 40) );

    // 3.2 返回对象时
    // let f7 = ()=>{
    //     return {name: 'tom', age: 10}
    // }
    // 当产生歧义时，可以添加小括号解决（提升优先级）
    let f7 = ()=> ({name: 'tom', age: 10})
    console.log( f7() ); // {name: 'tom', age: 10}

    
</script>